//package com.bsh.serviceImpl;
//
//
//import org.apache.commons.lang.StringUtils;
//import org.springframework.stereotype.Service;
//
//import com.alibaba.fastjson.JSONObject;
//import com.bsh.service.PayService;
//import com.bsh.utils.Constants;
//import com.bsh.utils.HttpUtils;
//import com.unspay.base64.Base64Utils;
//import com.unspay.rsa.RSAUtils;
//
//@Service
//public class PayServiceImpl implements PayService {
//
//	/**
//	 * 银生宝加密
//	 * 
//	 * @param userId
//	 * @param userName
//	 * @param bankNo
//	 * @param idCard
//	 * @return
//	 */
//	public String getYsbData(String customerId, String name, String cardNo,
//			String certNo) {
//		String data = "";
//		StringBuffer sb = new StringBuffer(customerId);
//		sb.append("|").append(name);
//		sb.append("|").append(cardNo);
//		sb.append("|").append(certNo);
//		byte[] encodedData;
//		try {
//			encodedData = RSAUtils.encryptByPrivateKey(sb.toString().getBytes(), Constants.YSB_PRIVATEKEY);
//			data = Base64Utils.encode(encodedData);
//		} catch (Exception e) {
//			e.printStackTrace();
//		}
//		return data;
//	}
//    
//	/**
//     * 银生宝数字签名
//     * @param accountId
//     * @param orderId
//     * @param amount
//     * @param backResponseUrl
//     * @param data
//     * @return
//     */
//	public String getYsbSign(String accountId, String orderId,
//			String amount, String backResponseUrl, String data) {
//		StringBuffer sb = new StringBuffer(accountId);
//		sb.append("&").append(orderId);
//		sb.append("&").append(amount);
//		sb.append("&").append(backResponseUrl);
//		sb.append("&").append(backResponseUrl);
//		String sign = "";
//		try {
//			sign = RSAUtils.sign(sb.toString().getBytes(), Constants.YSB_PRIVATEKEY);
//		} catch (Exception e) {
//			e.printStackTrace();
//		}
//		return sign;
//	}
//
//	
//	public JSONObject checkPayData(JSONObject jsonObject) throws Exception{
//		String customerId= jsonObject.getString("customerId");
//		String name= jsonObject.getString("name");
//		String cardNo= jsonObject.getString("cardNo");
//		String certNo= jsonObject.getString("certNo");
//		String orderId= jsonObject.getString("orderId");
//		String amount= jsonObject.getString("amount");
//		String accountId= Constants.YSB_MERCHANT_ACCOUNT_ID;
//		String responseUrl=Constants.YSB_RESPONSE_URL;
//		String backResponseUrl=Constants.YSB_BACK_RESPONSE_URL;
//		if(StringUtils.isBlank(customerId)){
//			throw new Exception("客户id不能为空！");
//		}
//		if(StringUtils.isBlank(name)){
//			throw new Exception("客户名字不能为空！");
//		}
//		if(StringUtils.isBlank(cardNo)){
//			throw new Exception("银行卡不能为空！");
//		}
//		if(StringUtils.isBlank(certNo)){
//			throw new Exception("身份证号不能为空！");
//		}
//		if(StringUtils.isBlank(orderId)){
//			throw new Exception("订单号不能为空！");
//		}
//		if(StringUtils.isBlank(amount)){
//			throw new Exception("转账金额不能为空！");
//		}
//		if(StringUtils.isBlank(accountId)){
//			throw new Exception("商户id不能为空！");
//		}
//		if(StringUtils.isBlank(responseUrl)){
//			throw new Exception("前端跳转地址不能为空！");
//		}
//		if(StringUtils.isBlank(backResponseUrl)){
//			throw new Exception("回调地址不能为空！");
//		}
//		String data=getYsbData(customerId, name, cardNo, certNo);
//		String sign=getYsbSign(accountId, orderId, amount, backResponseUrl, data);
//		if(StringUtils.isBlank(data)){
//			throw new Exception("用户信息加密失败！");
//		}
//		if(StringUtils.isBlank(sign)){
//			throw new Exception("数字签名加密失败！");
//		}
//		JSONObject jsonParam=new JSONObject();
//		jsonParam.put("accountId",accountId );
//		jsonParam.put("orderId",orderId );
//		jsonParam.put("amount",amount );
//		jsonParam.put("responseUrl",responseUrl );
//		jsonParam.put("backResponseUrl",backResponseUrl);
//		jsonParam.put("data",data);
//		jsonParam.put("sign",sign);
//		return jsonParam;
//	}
//	
//	
//	
//	/**
//	 * 银生宝支付
//	 * @param jsonObject
//	 * @return
//	 * @throws Exception 
//	 */
//	@Override
//	public String ysbDeduction(JSONObject jsonObject) throws Exception{
//		JSONObject jsonParam=checkPayData(jsonObject);
//		String url=Constants.YSB_PAY_URL;
//		String result=HttpUtils.executePost(url, jsonParam);
//		return result;
//		
//	}
//
//	
//	
//}
